<?php
class ArticleModule extends CWebModule
{

	public function init()
	{
		// this method is called when the module is being created
		// you may place code here to customize the module or the application

		// import the module-level models and components

		$this->setImport(array(
			'application.modules.article.models.*',
			'application.modules.article.components.*',
		));

        $this->setParams(array(
                'image'=>Yii::app()->basePath.'/../images/article/',
                'thumb'=>'/../images/article/thumbnail/thumb_',
        ));

	}

    public function install()
    {
        Yii::app()->config->add(array(
            array(
                'param'=>'BLOG.POSTS_PER_PAGE',
                'label'=>'Записей на странице',
                'value'=>'10',
                'type'=>'string',
                'default'=>'10',
            ),
            array(
                'param'=>'BLOG.POSTS_PER_HOME',
                'label'=>'Записей на главной странице',
                'value'=>'5',
                'type'=>'string',
                'default'=>'5',
            ),
        ));

        $path = Yii::getPathOfAlias('webroot.upload.blog');

        if (!is_dir($path))
            @mkdir($path, 755);
    }

    public function uninstall()
    {
        Yii::app()->config->delete(array(
            'BLOG.POSTS_PER_PAGE',
            'BLOG.POSTS_PER_HOME',
        ));
    }



	public function beforeControllerAction($controller, $action)
	{
		if(parent::beforeControllerAction($controller, $action))
		{
            //Устанавливаем базовые пути для всех модулей
            $modules = Yii::app()->getModules();
            if(count($modules))
            {
                foreach($modules as $module=>$options)
                {
                    if($module != 'gii')
                    {
                        Yii::app()->getModule($module)->basePath = Yii::getPathOfAlias('application.modules.'.$module);//Определяем базовый путь модуля, для предотвращения ошибок Yii::t()
                    }
                }
            }
            return true;
		}
		else
			return false;
	}
}
